Skip to content

Event Dispatchers ​

Event Dispatchers are used to send out events in the web client so that plugins can hook into these events and possibly process the event.

Example:

js
// on message SEND event
EventDispatcher.on("messageSend", async(payload) => {
    let {message, channelType} = payload;

    if(channelType === "discord_text"){
        let sendingResult = await sendDiscordMessage(message)
    }
})

Available events ​

infiniteScrollDescription: When the chat is scrolled all the way to the top Data:

json
{
	element,
	channelType: await getCurrentChannelType(),
	channelId: UserManager.getChannel()
}

messageSendDescription: When a user is sending a message, but before it is sent to the server. Channel types other than text are not sent to the server. Data:

json
{
	message: msgPayload,
	channelType,
}

getChannelTree_finishDescription: After the entire channel tree was rendered. Data: none

messageCreateDescription: New incoming message received. Data:

json
{
	message
}

getChatLogDescription: When the chat log requests starts Data:

json
{
	container, // element where the chat messages will be inserted into
	index, // timestamp filter for messages in the past. (createdAt < index)
	appendTop, // for infinite scroll. if messages are inserted above
	channelId, 
	channelType: await getCurrentChannelType(channelId), 
	firstElement: refElement, // first message element if chat; can be null
	preventDispatch // prevent endless loops
}

getChatLog_finishDescription: After the chat log was fetched and inserted Data:

json
{
	container, 
	index, 
	appendTop, 
	channelId, 
	channelType: await getCurrentChannelType(channelId), 
	firstElement: refElement, 
	preventDispatch
}